from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
import os
import requests
import pymysql
from pymysql.converters import escape_string
conn = pymysql.connect(
user="root",
password="plmoknijbuhv123.",
host="localhost",
database="kaoshi",
port=3306,
)
cursor = conn.cursor()
driver=Chrome()
url="https://www.dangdang.com/"
driver.get(url)
input=driver.find_element(By.XPATH,'//*[@id="key_S"]')
input.send_keys("Python")
danji=driver.find_element(By.XPATH,'//*[@id="form_search_new"]/input[10]')
danji.click()
flat=True
fd=open("html.csv",mode="a",encoding="utf-8")
sname = 1
xuhao="%05d"%1
while flat:
newurl=driver.current_url
myheaders={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}
response=requests.get(url=newurl,headers=myheaders)
response.encoding="GB2312"
html=response.text
soup=BeautifulSoup(html,'lxml')
ul=soup.find("ul",class_="bigimg")
lis=ul.find_all("li")
if not os.path.exists("download"):
os.mkdir("download")
i=1
for li in lis:
name=li.find("a")["title"]
try:
zuoze=li.find("p",class_="search_book_author").find("a")["title"]
except:
pass
money=li.find("p",class_="price").find("span",class_="search_now_price").text
riqi=li.find("p",class_="search_book_author").find_all("span")[1].text
chuban=li.find("p",class_="search_book_author").find_all("span")[2].text
jianjie=li.find("p",class_="detail").text
if i==1:
src=li.find("a").find("img")["src"]
else:
src=li.find("a").find("img")["data-original"]
movie_src="http:"+src
print(sname,name,zuoze)
resp=requests.get(movie_src,myheaders)
shu = "%05d" % sname
with open("download/"+str(shu)+".jpg","wb") as fp:
fp.write(resp.content)
fd.write(str(sname)+","+name+","+zuoze+","+chuban+","+riqi+","+money+","+jianjie+"\n")
sql="insert into kaoshi values (\'{}\',\'{}\',\'{}\',\'{}\',\'{}\',\'{}\');".format(escape_string(name),escape_string(zuoze),escape_string(chuban),escape_string(riqi),escape_string(money),escape_string(jianjie))
print(sql)
cursor.execute(sql)
conn.commit()
i=i+1
sname=sname+1
try:
next=driver.find_element(By.CLASS_NAME,"next").find_element(By.TAG_NAME,"a")
next.click()
except:
flat=False
fd.close()
cursor.close()
conn.close()
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
(2)编写爬虫程序,使用Urllib或Requests库获取到服务器URL的首页数据。 (3)解析数据,包含图书编号、名称、作者、出版社、出版时间、价格、简介、图书图片的URL,同时实现翻页功能爬取全部网页数据; (4)数据持久化存储:将全部解析的数据存储到 .CSV文件;将全部图书的图片存储到当前目录中“download”文件夹;将全部解析的数据存储到数据库( MySQL或MongoDB )。 编写爬虫程序,使用获取到服务器URL的首页数据。 (3)使用解析RE、BS4、XPATH数据,包含图书编号、名称、作者、出版社、出版时间、价格、简介、图书图片的URL,同时实现翻页功能爬取全部网页数据; (4)数据持久化存储:将全部解析的数据存储到 .CSV文件;将全部图书的图片存储到当前目录中“download”文件夹;将全部解析的数据存储到数据库( MySQL或MongoDB )。
资源推荐
资源详情
资源评论
收起资源包目录
爬虫.zip (2个子文件)
爬虫
考试.py 3KB
豆瓣电影TOP250.py 1KB
共 2 条
- 1
资源评论
淮猪
- 粉丝: 131
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于JavaWeb的学生管理系统.zip
- (源码)基于Android的VR应用转换系统.zip
- (源码)基于NetCore3.1和Vue的系统管理平台.zip
- (源码)基于Arduino的蓝牙控制LED系统.zip
- SwitchResX 4.6.4 自定义分辨率 黑苹果神器
- (源码)基于Spring Boot和MyBatis的大文件分片上传系统.zip
- (源码)基于Spring Boot和MyBatis的后台管理系统.zip
- (源码)基于JDBC的Java学生管理系统.zip
- (源码)基于Arduino的教室电力节能管理系统.zip
- (源码)基于Python语言的注释格式处理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功