python爬取小说网页内容以及遇到的问题解决
- 简单的爬取小说
# coding:UTF-8 -*-
import requests
if __name__ == '__main__':
target = 'https://www.52bqg.com/book_24967/10502028.html'
req = requests.get(url=target)
print(req.text)
target是要爬取的目标连接url 但是这种爬取方式会出现乱码
类似于这样的乱码:
ΪʲôºÚÎí¹ÈÕâôΣÏÕ£¬¿ª×ÚÀÏ׿¸úÆäËûÈË»¹Òª´³½øÀ´£¿<br />
<br />
ß×£¬ÕâºÚÎí¹ÈÖв»Éٵط½»¹³¤×ÅÁéÒ©£¬ÕæÊǸöÆæ¹ÖµÄµØ·½£¡<br />
<br />
³þ³¿Õð¾ªÖ®Ó࣬¿ªÊ¼²»¶ÏÍùÉÏ·É£¬µ±³åÆÆÔÆ²ãÒ»°ãµÄŨŨºÚÎíʱ£¬Ëû¿´µ½ÁËÒ»×ù¾Þ´óµÄɽÂö¡£<br />
<br />
Ò»×ùͨÌåÆáºÚ£¬¸ßËÊÈëÔÆ£¬»ÖºëÎޱȵĹÅɽËÊÁ¢ÔÚ²ÔãµÄºÚÎíÖС£ÕâºÚÎí¹È¾¹È»Òþ²Ø×ÅÕâôһ×ù»ÖºëµÄ¹Åɽ£¡<br />
<br />
ɽÉϾ¹È»¶¼ÊÇʬÌ壬һ²ãÓÖÒ»²ãµÄµþÔÚÒ»Æð£¬ÕâЩʬÊ×´ó¶àÒѾ±»ËºÁÑ£¬ËÀ×´¼«Îª²ÒÁÒ£¬ÏñÊÇ·¢Éú¹ýÒ»³¡¿õ¹ÅÕ½ÕùÒ»°ã¡£<br />
<br />
Õâ¡¡²»ÊÇ÷è÷ëÂð£¿Ò»¸ö¾Þ´óµÄѪ÷è÷ëµÄÍ·¶î»ìÔÚʬ¶Ñµ±ÖУ¬ÏÔµÃÌØ±ðÒ«ÑÛ£¬ÕâÕ½³¡Öо¹È»»¹ÓÐÉϹÅÉñÊÞ±»É±£¿<br />
<br />
³þ³¿ºÜ¿ì¾Í·¢ÏÖ£¬×Ô¼ºÕ𾪵ÃÌ«ÔçÁË£¬Ô½ÍùÉÏ·É£¬Ëû¿´µ½µÄÉϹÅÉñÊÞÓëÌ«¹ÅÑýħµÄʬÌå¾ÍÔ½¶à¡£<br />
<br />
ºÜ¿ìËû¾ÍÒѾÂéľÁË£¬²»¹ý¾ÍÔÚËû·Éµ½°ëɽÑüʱ£¬ÔÚȺʬÖп´µ½ÁËÒ»ÕÅÊìϤµÄÃæ¿×£¬Ò»Õž޴óµÄÌ«¼«²Ðͼ£¬ÓëÕû¸ö´óµØ»¯ÎªÒ»Ì壬ºÚ°×Á½É«¼«ÆäÃ÷ÏÔ¡£<br />
<br />
²Ðͼ±ßÔµ£¬¶¼ÊÇÒª³å½øÈ¥µÄʬÊ×£¬ËƺõûÓÐÈËÄÜԽͼ°ë²½£¬¶øÌ«¼«Í¼µÄÖÐÐÄ£¬ÊÇÒ»¸öÃæÈÝÇåÛÇÏÉ·çµÀ¹ÇµÄÀÏÕߣ¬Õâ¡¡Õâ·ÖÃ÷¾ÍÊǼҼһ§»§¶¼¹©·îµÄÌ«ÉÏÀϾý£¡<br />
<br />
ËûÔõô»áËÀÔÚÕâÀ<br />
<br />
Ì«ÉÏÀϾý±»Ò»Ö§½ðÉ«µÄ¼ý£¬´ÓÐÄÔಿ붤ËÀÔÚ×Ô¼ºµÄ¡°ÎÞÉÏÌ«¼«Í¼¡±ÉÏ£¬ËûÊֱ߻¹ÈÓ×ÅÒ»°ÑÒøË¿ÈçÑ©µÄÆÆËé¡°·÷³¾¡±¡£<br />
<br />
ÎÞÉÏÌ«¼«Í¼£¬Ìì½ç·÷³¾£¬ÕâЩ¶¼ÊÇͨÌì³¹µØµÄ±¦Î<br />
原因是网页的编码不同,所以要找到该网页的编码方式。爬取过来的内容是网页的全部内容,即是html代码。所以开头可以查看网页的编码方式
`<meta http-equiv="Content-Type" content="text/html; charset=gbk" />`
可以发现是gbk编码方式 于是改为utf-8编码方式,加一句代码 req.encoding=('gbk')
最后的代码就是
# coding:UTF-8 -*-
import requests
if __name__ == '__main__':
target = 'https://www.52bqg.com/book_24967/10502028.html'
req = requests.get(url=target)
req.encoding=('gbk')
print(req.text)
这样整个网页的内容都可以爬取过来,而且是正常的编码啦
下次讲如何挑选出我们需要的内容。