此次爬虫仅供学习使用,非商业使用。如果您使用这套代码进行网络或者其他攻击性质操作,责任由攻击者自行负责与承担法律责任。
下面个人总结一下:
此套程序也是本人参考朋友代码进行操作和学习的。在学习的过程中学习的是爬虫的逻辑思维、小功能点使用与扩展及python类及函数的使用。
1、考虑网站的反爬虫机制,加上headers。
2、获取网页内容(requests.get(url,headers = header).content)。
3、创建BeautifulSoup对象,查找要提取的该页面某一个class及其属性对应下的a标签(soup.find_all('a',class_='list-group-item random_list tg-article')),该a标签的内容是详情页的地址。返回的地址是一个又一个list,假设获取href后面的链接,只需在循环时i['href']。具体如 for i in a_all:
img_html = index_url(i['href'])
下一步对详情页进行操作。解析详情页内容。
4、对详情页进行解析。soup = etree.HTML(html) #解析详情页
items = soup.xpath('//div[@class="artile_des"]') #使用xpath。提出想要的内容
for item in items:
img_list = item.xpath('table/tbody/tr/td/a/img/@onerror') #根据标签查找想要的内容
thread_save_img(img_list) 启动多线程操作。
5、img_url = img_url.split('=')[-1].replace('\'','') #对url操作
img_content = requests.get(img_url).content #对提取的图片路径提取内容。
savepath = '/D/pythonproject/doutunet/doutuimg/'+img_url.split('/')[-1]
with open(savepath,'wb') as f:
print('正在下载:'+img_url.split('/')[-1])
f.write(img_content)
到此操作全部完成。有需要代码的小伙伴找我即可。如用于商业用图,法律责任自行承担。本人仅提供学习使用。