![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spider
legendary_Dragon
学不可以已
展开
-
xpath 定位同级倒数第二个元素
xpath 定位同级标签的倒数第一个a标签//div[contains(@class, 'paginator')]/a[last()]xpath 定位同级标签的倒数第二个a标签//div[contains(@class, 'paginator')]/a[last()-1]原创 2019-11-14 15:25:20 · 9309 阅读 · 0 评论 -
xpath定位相邻的前N位或者后N位元素
# 前一位:../div[@="class"]/preceding-sibling::div[1]# 后一位:../div[@="class"]/following-sibling::div[1]# 前N位:../div[@="class"]/preceding-sibling::div[N]# 后N位:../div[@="class"]/following-sibling::d...原创 2019-11-05 10:25:37 · 1090 阅读 · 0 评论 -
Python:key没有引号的字符串如何转json
如果一个字符串是如下类型的,直接用json.loads()import jsonmsg = "{'name': 'CP', 'id': '', 'pageno': 1}"dic = json.loads(msg)如果字符串的key值没有引号,用demjson.decode()import demjsonmsg = "{name: 'CP', id: '', pageno: 1}"d...原创 2019-09-03 11:10:18 · 3977 阅读 · 1 评论 -
scrapy发送post请求
一些请求,用requests或者postman没有问题,而用scrapy出现问题。一部分原因是因为headers写的不够准确,还有一部分则是因为参数的原因。scrapy发送post请求,参数的value必须是字符串,requests则没有那么严格。def start_requests(self): yield scrapy.FormRequest( url='https:...原创 2019-06-14 09:13:08 · 2550 阅读 · 0 评论 -
用xpath判断网页上的某个字段是否存在
数据采集时,多个同类型网页上字段种类、数量可能不一致。有时需要我们判断该字段是否在网页上,使用xpath可以用标签包含某个文本的方式。部分代码如下:在不知道Checks for plagiarism字段是否存在的情况下,可以用try: pq = doc.xpath("//p[contains(text(),'Checks for plagiarism')]")[0]except Exce...原创 2019-05-30 14:24:58 · 4842 阅读 · 0 评论 -
爬虫如何规避掉DDOS的页面停留五秒后显示
写爬虫的时候,经常会遇到防DDOS攻击的网站,需要在页面停留几秒后,才能正确打开首页。本来我是用的chromedriver的headless模式,但是因为要打开一个真实的浏览器,这种做法非常的消耗资源。后来,使用V8引擎调用javascript发现也不能很好的解决我的问题,最后在github上发现了cloudflare-scrape项目,可以成功规避掉DDOS的问题。最后附上项目的github...原创 2018-12-10 10:56:25 · 4833 阅读 · 0 评论 -
xpath匹配父标签下的最后一个标签(相同父标签下子标签个数不一致的情况)
有时候,相同的父节点下面的标签个数不一致,一个父节点下面是两个标签,另一个父节点下面是三个标签。但是我们又想要把只有两个标签的父节点也记为三个子节点,并且把它最后一个节点的值记为None。可通过伪造的第三个标签和第二个标签比较,判断是不是应该为None。如果子节点的标签也不一致,可以如下方式,这种情况比较少见://div[contains(@class, 'tv')]/child::node...原创 2018-12-04 16:34:16 · 4888 阅读 · 0 评论 -
Scrapy 的headers中cookie不生效的问题
scrapy的cookie不生效,需要在项目的settings文件中修改# Disable cookies (enabled by default) .COOKIES_ENABLED = False这样你spiders中的cookie才会生效原创 2018-07-28 13:44:55 · 2330 阅读 · 0 评论 -
用xpath获取指定标签下的所有text
今天用xpath获取的元素下面text 是被几个b标签分割开的,我想要一次性全部获取,参考了其他人的博客是如下的做法:value_ls = html.xpath("//tr/td[7]")value = value_ls[0].xpath('string(.)').extract()[0]但是因为我用的是 lxml, 系统报错,lxml元素没有extract() 这个方法,去掉这个方...原创 2018-08-04 16:08:50 · 13884 阅读 · 5 评论 -
Scrapy如何获取返回的headers里面的多个Set-Cookie
爬虫有时候需要先拿到cookie, 然后再用cookie去访问其他页面。当遇到返回的response的headers中包含多个Set-Cookie时,如何获取呢? 如果直接用requests模块:#获取响应的cookie html = requests.get(url,headers=Head,verify=False,timeout=maxExcuteTime) ...原创 2018-07-30 16:38:46 · 7578 阅读 · 0 评论 -
scrapy项目在Linux服务器上的部署
scrapy项目在Linux服务器上部署时,如果不想采用scrapyd(官方文档)的方式。启动命令如果使用scrapy crawl {spider},执行一次就会停止,如果使用死循环的cmdline方式也是执行一次就停止。最后在网上看到使用subprocess.Popen()方法,这个方法可以保证能够循环执行。但是,如果需要在liunx服务器上跑的话,还是需要加上shell=True这个参...原创 2018-06-27 09:57:53 · 2889 阅读 · 0 评论 -
匹配去掉html标签
import rehtml = """<p style="text-align:left;"><span style="font-size:12.0pt;font-family:KaiTi;">注意:DAG未来6个月会有6次空投,空投数量总共为3000万个,请用户知悉!</span></p>"""原创 2018-06-19 11:41:03 · 584 阅读 · 0 评论